# -*- encoding:utf-8 -*-
# @Time: 2022/12/5 11:00
# @Author :xibin
# @Email: xibin@maqu. com
# @File: serializers.py
# @Software: PyCharm
from rest_framework.serializers import ModelSerializer
from rest_framework import serializers
from .models import *

class LabelSerializer(ModelSerializer):
    #进行添加字段，添加班主任名字字段
    username = serializers.CharField(source='user.username',read_only=True) #source关联的外接字段(也就是下面kwargs里的user用户名)

    class Meta:  #原信息
        model = Label  #对Label这个模型类进行操作
        fields = '__all__' #字段显示，显示所有字段

        extra_kwargs = {  #验证
            'user':{'required':False,'write_only':True} #用户验证，write-only写入名字，到底是谁创建的
            #默认情况下，每个字段类都假定值是必填的，所以要使它不是必填的，你需要设置required=False。
        }

class TopicSerializer(ModelSerializer):  #老师查看题目
    label_name = serializers.CharField(source='label.name',read_only=True)
    user_name = serializers.CharField(source='user.username',read_only=True)

    class Meta:  #原信息（可进行操作，例如显示那个字段或者验证）
        model = Topic
        exclude = ['is_delete']  #除了逻辑删除，其他都可显示

class TopicStudentSerializer(ModelSerializer):  #学生查看题目
    label_name = serializers.CharField(source='label.name',read_only=True)
    user_name = serializers.CharField(source='user.username',read_only=True)

    class Meta:  #原信息（可进行操作，例如显示那个字段或者验证）
        model = Topic
        exclude = ['is_delete','answer']  #除了逻辑删除，其他都可显示




